home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Missions / Mission_1 / Mission.script < prev    next >
Text File  |  2001-12-19  |  6KB  |  230 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. class CDestroyMission extends
  11.   CBaseMission, CDestroyMissionObjectList, CDestroyMission_Strings, CNavPointUser
  12. {
  13.   int GetAutoGeneratedUnitsQty()
  14.   {
  15.     return 6;
  16.   }
  17.  
  18.   void CDestroyMission()
  19.   {
  20.     BaseMission_InitMission();
  21.  
  22.     BaseMission_UpdateLoadProgress();
  23.     CreateComponent("DebugCamera", "GameObject", "CDebugCamera");
  24.     SetComponentPosition("DebugCamera",
  25.       matrix(
  26.         1.0, 0.0, 0.0, 8000.0,
  27.         0.0, 1.0, 0.0, 8000.0,
  28.         0.0, 0.0, 1.0,  600.0,
  29.         0.0, 0.0, 0.0,    1.0
  30.       ));
  31.  
  32.     // CreateComponent(IDToRegister, ComponentID, ScriptName | FileName | "")
  33.     BaseMission_UpdateLoadProgress();
  34.     CreateComponent("Atmosphere", "Atmosphere", "CDestroyMission_Atmosphere");
  35.  
  36.     BaseMission_UpdateLoadProgress();
  37.     CreateComponent("Sky", "SkyObject", "CDestroyMission_Sky");
  38.  
  39.     BaseMission_UpdateLoadProgress();
  40.     CreateComponent("Terrain", "ProgressiveTerrainObject", "CDestroyMission_Terrain");
  41.  
  42.     BaseMission_UpdateLoadProgress();
  43.     CreateComponent("Forest", "Forest", "CDestroyMission_Forest");
  44.  
  45.     BaseMission_UpdateLoadProgress();
  46.     CreateComponent("AIController", "AIController", "CBaseAIController");
  47.  
  48.     BaseMission_CreateObjects();
  49.  
  50.     //
  51.     //  Mission specific
  52.     //
  53.  
  54.     // count how many 1st and 2nd objectives' objects are in the mission
  55.     array m_Objects = GetObjectsIDs();
  56.  
  57.     m_Village1Count    = 0;
  58.     m_Village2Count    = 0;
  59.     m_Village3Count    = 0;
  60.     m_Village4Count    = 0;
  61.     m_TanksCount       = 0;
  62.     m_BonusCount       = 0;
  63.     m_EnemiesDestroyed = 0;
  64.  
  65.     for (int i = 0; i < m_Objects.size(); i = i + 1)
  66.     {
  67.       if (Core_IsStringStartsWith(m_Objects[i], "AntiAirObj1"))
  68.         m_Village1Count = m_Village1Count + 1;
  69.  
  70.       if (Core_IsStringStartsWith(m_Objects[i], "AntiAirObj2"))
  71.         m_Village2Count = m_Village2Count + 1;
  72.  
  73.       if (Core_IsStringStartsWith(m_Objects[i], "AntiAirObj3"))
  74.         m_Village3Count = m_Village3Count + 1;
  75.  
  76.       if (Core_IsStringStartsWith(m_Objects[i], "AntiAirObj4"))
  77.         m_Village4Count = m_Village4Count + 1;
  78.  
  79.       if (Core_IsStringStartsWith(m_Objects[i], "TankObj6"))
  80.         m_TanksCount = m_TanksCount + 1;
  81.  
  82.       if (Core_IsStringStartsWith(m_Objects[i], "AntiAirObj5"))
  83.         m_BonusCount = m_BonusCount + 1;
  84.     }
  85.   }
  86.  
  87.   //
  88.   //  Mission specific variables
  89.   //
  90.  
  91.   int  m_Village1Count;
  92.   int  m_Village2Count;
  93.   int  m_Village3Count;
  94.   int  m_Village4Count;
  95.   int  m_TanksCount;
  96.   int  m_BonusCount;
  97.   int  m_EnemiesDestroyed;
  98.  
  99.   array m_MissionObjectivesStatuses =
  100.           array(
  101.             str_ObjectiveInProgress,
  102.             str_ObjectiveInProgress,
  103.             str_ObjectiveInProgress,
  104.             str_ObjectiveInProgress,
  105.             str_ObjectiveInProgress
  106.           );
  107.  
  108.   array m_BonusMissionObjectivesStatuses =
  109.           array(
  110.             str_ObjectiveInProgress
  111.           );
  112.  
  113.   //
  114.   //  virtual methods
  115.   //
  116.  
  117.   //
  118.   //  Mission statistics
  119.  
  120.   string GetMissionStatistics()
  121.   {
  122.     return str_StatisticsTitle + m_EnemiesDestroyed;
  123.   }
  124.  
  125.   //
  126.   //  Mission navpoints
  127.  
  128.   array GetNavPoints()
  129.   {
  130.     array navpoints =
  131.       array(
  132.           GetNavPoint("NavPoint_Suglobovka"),
  133.           GetNavPoint("NavPoint_Tabunovka"),
  134.           GetNavPoint("NavPoint_Rymino"),
  135.           GetNavPoint("NavPoint_Koloskovo"),
  136.           GetNavPoint("NavPoint_Schultz"),
  137.           GetNavPoint("NavPoint_Gadyukino")
  138. //        vector(9731.0,  3326.0,  1000.0),
  139. //        vector(8127.0,  1203.0,  1000.0),
  140. //        vector(7453.0,  5589.0,  1000.0),
  141. //        vector(5132.0,  4513.0,  1000.0),
  142. //        vector(4457.0,  10883.0, 1000.0),
  143. //        vector(11923.0, 2204.0,  1000.0)
  144.       );
  145.     return navpoints;
  146.   }
  147.  
  148.   //
  149.   //  Mission map skin file
  150.  
  151.   string GetMapSkinFileName()
  152.   {
  153.     return "Missions/Mission_1/Map.skin";
  154.   }
  155.  
  156.   //
  157.   //  Mission specific event handlers
  158.   //
  159.  
  160.   //
  161.   //  Object destroyed event handler
  162.   //
  163.  
  164.   void OnGameObjectDestroyed(string _id)
  165.   {
  166.     BaseMission_OnGameObjectDestroyed(_id);
  167.  
  168.     if (Core_IsStringStartsWith(_id, "AntiAirObj1"))
  169.     {
  170.       m_Village1Count = m_Village1Count - 1;
  171.       m_EnemiesDestroyed = m_EnemiesDestroyed + 1;
  172.     }
  173.  
  174.     if (Core_IsStringStartsWith(_id, "AntiAirObj2"))
  175.     {
  176.       m_Village2Count = m_Village2Count - 1;
  177.       m_EnemiesDestroyed = m_EnemiesDestroyed + 1;
  178.     }
  179.  
  180.     if (Core_IsStringStartsWith(_id, "AntiAirObj3"))
  181.     {
  182.       m_Village3Count = m_Village3Count - 1;
  183.       m_EnemiesDestroyed = m_EnemiesDestroyed + 1;
  184.     }
  185.  
  186.     if (Core_IsStringStartsWith(_id, "AntiAirObj4"))
  187.     {
  188.       m_Village4Count = m_Village4Count - 1;
  189.       m_EnemiesDestroyed = m_EnemiesDestroyed + 1;
  190.     }
  191.  
  192.     if (Core_IsStringStartsWith(_id, "AntiAirObj5"))
  193.     {
  194.       m_BonusCount = m_BonusCount - 1;
  195.       m_EnemiesDestroyed = m_EnemiesDestroyed + 1;
  196.     }
  197.  
  198.     if (Core_IsStringStartsWith(_id, "TankObj6"))
  199.     {
  200.       m_TanksCount = m_TanksCount - 1;
  201.     }
  202.  
  203.     if (m_Village1Count == 0)
  204.      BaseMission_CompleteObjective(0);
  205.  
  206.     if (m_Village2Count == 0)
  207.       BaseMission_CompleteObjective(1);
  208.  
  209.     if (m_Village3Count == 0)
  210.       BaseMission_CompleteObjective(2);
  211.  
  212.     if (m_Village4Count == 0)
  213.       BaseMission_CompleteObjective(3);
  214.  
  215.     if (m_TanksCount == 0)
  216.       BaseMission_CompleteObjective(4);
  217.  
  218.     if (m_BonusCount == 0)
  219.       BaseMission_CompleteBonusObjective(0);
  220.   }
  221.  
  222.   void OnMissionLoaded()
  223.   {
  224.     Core_SendEventTo("Helicopter", "OnInitiallyEnableTargetScreen", true);
  225.  
  226.     // Start mission music playing
  227.     Core_SendEventTo(SOID_MusicController, "PlayMissionMusic", 1);
  228.   }
  229. }
  230.